package com.zrrd.learn.chapter06数组;

/**
 * @author Victory
 * @version 1.0
 * @date 2023/7/14 20:57
 */
public class testsz {
    /**
     * 请将1,9,2,5,4,8,3,6,7,10,8存入数组a，然后输出打印；
     * <p>
     * <p>
     * 将数组a中的数字进行从小到大和从大到小排序输出，分别打印；a = 1,9,2,5,4,8,3,6,7,10,8
     * <p>
     * <p>
     * 查找数组a中的最大值、最小值，并打印输出它们的下标位置；
     */
    public static void main(String[] args) {
        int[] a = {3, 9, 1, 5, 4, 8, 3, 6, 7, 10, 10};
//        for (int i = 0; i < a.length - 1; i++) {
//            for (int j = 0; j < a.length - i - 1; j++) {
//                if (a[j] > a[j + 1]) {
//                    int temp = a[j];
//                    a[j] = a[j + 1];
//                    a[j + 1] = temp;
//                }
//            }
//        }
//        System.out.println(Arrays.toString(a));
//        for (int i = 0; i < a.length - 1; i++) {
//            for (int j = 0; j < a.length - i - 1; j++) {
//                if (a[j] < a[j + 1]) {
//                    int temp = a[j];
//                    a[j] = a[j + 1];
//                    a[j + 1] = temp;
//                }
//            }
//        }
//        System.out.println(Arrays.toString(a));
//
        /**
         * 求最大值和最小值数组设置的第一个元素
         */

        int max = a[0];
        int min = a[0];

        /**
         * 存贮重复最大值最小值下标的数组
         */

        int[] maxIndex = new int[a.length];
        int[] minIndex = new int[a.length];

        /**
         * 记录储存了几个最大值最小值
         */
        int maxICount = 0;
        int minICount = 0;

        for (int i = 0; i < a.length; i++) {
            if (a[i] > max) {
                max = a[i];
                maxIndex[0] = i;
            } else if (a[i] == max) {
                maxIndex[maxICount++] = i;
            }
            if (a[i] < min) {
                min = a[i];
                minIndex[0] = i;
            } else if (a[i] == min) {
                minIndex[minICount++] = i;
            }
        }

        System.out.print("数组的最大值为：" + max + "下标位置为：");
        for (int i = 0; i < maxICount; i++) {
            System.out.print(maxIndex[i] + " ");
        }
        System.out.println();
        System.out.print("数组的最小值为：" + min + "下标位置为：");
        for (int i = 0; i < minICount; i++) {
            System.out.print(minIndex[i] + " ");
        }
        System.out.println();
    }
}
